問題四 為什麼用 PHP 的 json_encode 總是無法正確的處理中文呢?
用 PHP 的 json_encode 來處理中文的時候,中文都會被編碼,變成不可讀的類似「 \u*** 」的 Unicode 格式,還會在一定程度上增加傳輸的流量。
<?php
echo json_encode("中文");
//"\u4e2d\u6587"
?>
這個在舊版的 PHP 開發上會有許多的問題,因為 「 \u*** 」的 \ 是跳脫字元,會導致你在沒辦法正確的輸出中文。
不過在 PHP5.4,JSON Endoe 新增了一個選項:「JSON_UNESCAPED_UNICODE」,故名思議,就是說,JSON 不要編碼 Unicode。
看下面的例子:
<?php
echo json_encode("中文", JSON_UNESCAPED_UNICODE);
//"中文"
?>
參數蠻多的,如果在 JSON Endoe 碰到問題可以參考看看喔!
http://tw1.php.net/manual/en/json.constants.php